<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    //1.reduce理解 reducer 逐个遍历数组元素，每一步都将当前元素的值与上一步的计算结果相加（上一步的计算结果是当前元素之前所有元素的总和）——直到没有更多的元素被相加。
    //有两个参数,第一个回调函数里面有4个参数 （必须有 上一次调用 callbackFn 时的返回值，必须有 数组中正在处理的元素 ，index 当前元素索引 （可省略），arr数组本身  还有一个是传递给函数的初始值
    //累加器，遍历数组
    //应用
    //01 没有第二个参数的话，就从当前开始
  // const arr=[1,1,1,1]
  //  const arr1= arr.reduce((a,b)=>{
  //  return a+b
  //   })
  //   console.log(arr1); //4
  //  //有第二个参数的数就把参数值给到累加器，
  //   const arr2=[1,1,1,1].reduce((a,b)=>{
  //  return a+b
  //   },10)
  //   console.log(arr);  //1,1,1,1
  //   console.log(arr2);  //14

    //2map  遍历数组并返回新的数组
     //遍历中执行匿名函数都可以接收三个参数，分别为：遍历过程的每一项、遍历序号（索引值）、原数组；
     //实例
    //  var arr=[0,2,3,4,5]
    //  var str=arr.map((i,index,arr)=>{
    //   return i+2  //每一项+2
    //  })
    //  console.log(arr); //0,2,3,4,5
    //  console.log(str); //2,4,5,6,7

    //3 filter 它用于遍历，筛选掉你不需要的值，保留需要的。
    //用法 接受3个参数（element数组中当前正在处理的元素，index正在处理的元素在数组中的索引，arr数组本身） return负责返回true或false，当return为true时当前遍历到的item将保留，如果为false，代表不符合要求将被筛选掉。
//     let a = [1, 2, 3]
// let b = a.filter((item, index) => {
//     if (item < 3) {
//         return true
//     } else {
//         return false
//     }
// })
// console.log(b) // [1,2]

//4some 接收3个参数item为当前项，ndex为当前项的索引值，arr为数组本身
//用法some相当于逻辑关系中的或（||），只要有一个参数满足条件，就会中断逻辑，返回true，遍历结束，没有找到合适的参数，就返回false
// const arr=[1,2,3,4,5]
// const newarr=arr.some((item)=>{
//   return item>2
// })
// console.log(newarr); //true

 //5every 接收3个参数item为当前项，ndex为当前项的索引值，arr为数组本身
 //用法every相当于逻辑关系中的且（&&），只有所有参数满足条件的时候，才会返回true，如果有一个不满足，就会逻辑中断，返回false,
 const arr=[1,2,3,4,5]
const newarr=arr.some((item)=>{
  return item>6
})
console.log(newarr); //flase
  </script>
</body>
</html>